class Parent{  //声明一个类
    constructor(name,age){ //构造函数
        this.name=name;
        this.age=age;
    }
    sayHi(){ //动态方法
        console.log(`我是${this.name},今年${this.age},我喜欢写代码`);
    }
    sayHello=()=>{ //箭头函数，会一直指向这个实例化的类
        console.log(123123);
    }
    static read(){ //静态方法
//static是一个静态的方法，是类中的一个方法，那些没有static的方法属于动态的方法
        console.log('这个静态的方法');
    }
    static abc={ //静态的属性
        name:'欧阳锋',
        skill:'资深地产'
    }
}
let p = new Parent('李白',20) //实例化这个类
// 调用sayHi这个动态的方法, 调用之后才会将这个方法里面的东西打印出来
p.sayHi()
// 调用read这个静态方法，需要通过类直接调用
Parent.read()
// 调用静态的属性，也是需要通过类直接调用
// Parent.abc
console.log(Parent.abc); //调用并打印
console.log(p);

// 继承
class Child extends Parent{
    constructor(){
        //如果使用了extends关键字继承，那么需要调用super ,来让当前的子类获得正确的this指向
        super('素质',30)
        //super其实可以调用父类的构造函数
        this.tools='系代码'
    }
}
let t = new Child()
console.log(t);